#include <unistd.h>
#include <fcntl.h>

#include <cerrno>
#include <cstring>

#include "log.hpp"
#include "err.hpp"

class Util
{
public:
    static void SetNonBlock(int fd)
    {
        int fl = fcntl(fd,F_GETFL); //获取文件属性位图集
        if(fl < 0)
        {
            //std::cerr<<"[error code:"<<errno<<"| strint error:"<<strerror(errno)<<"]"<<std::endl;
            logMessage(Fatal,"[error code:%d | strint error:%s]",errno,strerror(errno));
            exit(SET_NON_BLOCK_ERR);
        }
        fcntl(fd,F_SETFL,fl | O_NONBLOCK); //设置文件属性位图 文件操作为非阻塞
    }
};